home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / frantic.swf / scripts / CMG_AS3 / MD5.as next >
Encoding:
Text File  |  2011-10-17  |  17.9 KB  |  428 lines

  1. package CMG_AS3
  2. {
  3.    public class MD5
  4.    {
  5.       
  6.       public static var hexcase:uint = 0;
  7.       
  8.       public static const HEX_FORMAT_LOWERCASE:uint = 0;
  9.       
  10.       public static const HEX_FORMAT_UPPERCASE:uint = 1;
  11.       
  12.       public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = "";
  13.       
  14.       public static var b64pad:String = "";
  15.       
  16.       public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "=";
  17.        
  18.       
  19.       public function MD5()
  20.       {
  21.          super();
  22.       }
  23.       
  24.       public static function md5_gg(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  25.       {
  26.          return md5_cmn(param2 & param4 | param3 & ~param4,param1,param2,param5,param6,param7);
  27.       }
  28.       
  29.       public static function md5_cmn(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number) : Number
  30.       {
  31.          return safe_add(bit_rol(safe_add(safe_add(param2,param1),safe_add(param4,param6)),param5),param3);
  32.       }
  33.       
  34.       public static function binl_md5(param1:Array, param2:Number) : Array
  35.       {
  36.          var _loc3_:Number = NaN;
  37.          var _loc4_:Number = NaN;
  38.          var _loc5_:Number = NaN;
  39.          var _loc6_:Number = NaN;
  40.          var _loc7_:Number = NaN;
  41.          var _loc8_:Number = NaN;
  42.          var _loc9_:Number = NaN;
  43.          var _loc10_:Number = NaN;
  44.          var _loc11_:Number = NaN;
  45.          param1[param2 >> 5] |= 128 << param2 % 32;
  46.          param1[(param2 + 64 >>> 9 << 4) + 14] = param2;
  47.          _loc3_ = 1732584193;
  48.          _loc4_ = -271733879;
  49.          _loc5_ = -1732584194;
  50.          _loc6_ = 271733878;
  51.          _loc7_ = 0;
  52.          while(_loc7_ < param1.length)
  53.          {
  54.             _loc8_ = _loc3_;
  55.             _loc9_ = _loc4_;
  56.             _loc10_ = _loc5_;
  57.             _loc11_ = _loc6_;
  58.             _loc3_ = md5_ff(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 0],7,-680876936);
  59.             _loc6_ = md5_ff(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 1],12,-389564586);
  60.             _loc5_ = md5_ff(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 2],17,606105819);
  61.             _loc4_ = md5_ff(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 3],22,-1044525330);
  62.             _loc3_ = md5_ff(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 4],7,-176418897);
  63.             _loc6_ = md5_ff(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 5],12,1200080426);
  64.             _loc5_ = md5_ff(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 6],17,-1473231341);
  65.             _loc4_ = md5_ff(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 7],22,-45705983);
  66.             _loc3_ = md5_ff(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 8],7,1770035416);
  67.             _loc6_ = md5_ff(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 9],12,-1958414417);
  68.             _loc5_ = md5_ff(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 10],17,-42063);
  69.             _loc4_ = md5_ff(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 11],22,-1990404162);
  70.             _loc3_ = md5_ff(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 12],7,1804603682);
  71.             _loc6_ = md5_ff(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 13],12,-40341101);
  72.             _loc5_ = md5_ff(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 14],17,-1502002290);
  73.             _loc4_ = md5_ff(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 15],22,1236535329);
  74.             _loc3_ = md5_gg(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 1],5,-165796510);
  75.             _loc6_ = md5_gg(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 6],9,-1069501632);
  76.             _loc5_ = md5_gg(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 11],14,643717713);
  77.             _loc4_ = md5_gg(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 0],20,-373897302);
  78.             _loc3_ = md5_gg(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 5],5,-701558691);
  79.             _loc6_ = md5_gg(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 10],9,38016083);
  80.             _loc5_ = md5_gg(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 15],14,-660478335);
  81.             _loc4_ = md5_gg(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 4],20,-405537848);
  82.             _loc3_ = md5_gg(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 9],5,568446438);
  83.             _loc6_ = md5_gg(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 14],9,-1019803690);
  84.             _loc5_ = md5_gg(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 3],14,-187363961);
  85.             _loc4_ = md5_gg(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 8],20,1163531501);
  86.             _loc3_ = md5_gg(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 13],5,-1444681467);
  87.             _loc6_ = md5_gg(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 2],9,-51403784);
  88.             _loc5_ = md5_gg(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 7],14,1735328473);
  89.             _loc4_ = md5_gg(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 12],20,-1926607734);
  90.             _loc3_ = md5_hh(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 5],4,-378558);
  91.             _loc6_ = md5_hh(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 8],11,-2022574463);
  92.             _loc5_ = md5_hh(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 11],16,1839030562);
  93.             _loc4_ = md5_hh(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 14],23,-35309556);
  94.             _loc3_ = md5_hh(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 1],4,-1530992060);
  95.             _loc6_ = md5_hh(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 4],11,1272893353);
  96.             _loc5_ = md5_hh(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 7],16,-155497632);
  97.             _loc4_ = md5_hh(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 10],23,-1094730640);
  98.             _loc3_ = md5_hh(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 13],4,681279174);
  99.             _loc6_ = md5_hh(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 0],11,-358537222);
  100.             _loc5_ = md5_hh(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 3],16,-722521979);
  101.             _loc4_ = md5_hh(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 6],23,76029189);
  102.             _loc3_ = md5_hh(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 9],4,-640364487);
  103.             _loc6_ = md5_hh(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 12],11,-421815835);
  104.             _loc5_ = md5_hh(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 15],16,530742520);
  105.             _loc4_ = md5_hh(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 2],23,-995338651);
  106.             _loc3_ = md5_ii(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 0],6,-198630844);
  107.             _loc6_ = md5_ii(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 7],10,1126891415);
  108.             _loc5_ = md5_ii(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 14],15,-1416354905);
  109.             _loc4_ = md5_ii(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 5],21,-57434055);
  110.             _loc3_ = md5_ii(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 12],6,1700485571);
  111.             _loc6_ = md5_ii(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 3],10,-1894986606);
  112.             _loc5_ = md5_ii(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 10],15,-1051523);
  113.             _loc4_ = md5_ii(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 1],21,-2054922799);
  114.             _loc3_ = md5_ii(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 8],6,1873313359);
  115.             _loc6_ = md5_ii(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 15],10,-30611744);
  116.             _loc5_ = md5_ii(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 6],15,-1560198380);
  117.             _loc4_ = md5_ii(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 13],21,1309151649);
  118.             _loc3_ = md5_ii(_loc3_,_loc4_,_loc5_,_loc6_,param1[_loc7_ + 4],6,-145523070);
  119.             _loc6_ = md5_ii(_loc6_,_loc3_,_loc4_,_loc5_,param1[_loc7_ + 11],10,-1120210379);
  120.             _loc5_ = md5_ii(_loc5_,_loc6_,_loc3_,_loc4_,param1[_loc7_ + 2],15,718787259);
  121.             _loc4_ = md5_ii(_loc4_,_loc5_,_loc6_,_loc3_,param1[_loc7_ + 9],21,-343485551);
  122.             _loc3_ = safe_add(_loc3_,_loc8_);
  123.             _loc4_ = safe_add(_loc4_,_loc9_);
  124.             _loc5_ = safe_add(_loc5_,_loc10_);
  125.             _loc6_ = safe_add(_loc6_,_loc11_);
  126.             _loc7_ += 16;
  127.          }
  128.          return [_loc3_,_loc4_,_loc5_,_loc6_];
  129.       }
  130.       
  131.       public static function str2rstr_utf16le(param1:String) : String
  132.       {
  133.          var _loc2_:String = null;
  134.          var _loc3_:Number = NaN;
  135.          _loc2_ = "";
  136.          _loc3_ = 0;
  137.          while(_loc3_ < param1.length)
  138.          {
  139.             _loc2_ += String.fromCharCode(param1.charCodeAt(_loc3_) & 255,param1.charCodeAt(_loc3_) >>> 8 & 255);
  140.             _loc3_++;
  141.          }
  142.          return _loc2_;
  143.       }
  144.       
  145.       public static function hex_hmac_md5(param1:String, param2:String) : String
  146.       {
  147.          return rstr2hex(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)));
  148.       }
  149.       
  150.       public static function binl2rstr(param1:Array) : String
  151.       {
  152.          var _loc2_:String = null;
  153.          var _loc3_:Number = NaN;
  154.          _loc2_ = "";
  155.          _loc3_ = 0;
  156.          while(_loc3_ < param1.length * 32)
  157.          {
  158.             _loc2_ += String.fromCharCode(param1[_loc3_ >> 5] >>> _loc3_ % 32 & 255);
  159.             _loc3_ += 8;
  160.          }
  161.          return _loc2_;
  162.       }
  163.       
  164.       public static function md5_ff(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  165.       {
  166.          return md5_cmn(param2 & param3 | ~param2 & param4,param1,param2,param5,param6,param7);
  167.       }
  168.       
  169.       public static function md5_ii(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  170.       {
  171.          return md5_cmn(param3 ^ (param2 | ~param4),param1,param2,param5,param6,param7);
  172.       }
  173.       
  174.       public static function rstr2binl(param1:String) : Array
  175.       {
  176.          var _loc2_:Array = null;
  177.          var _loc3_:Number = NaN;
  178.          _loc2_ = new Array(param1.length >> 2);
  179.          _loc3_ = 0;
  180.          while(_loc3_ < _loc2_.length)
  181.          {
  182.             _loc2_[_loc3_] = 0;
  183.             _loc3_++;
  184.          }
  185.          _loc3_ = 0;
  186.          while(_loc3_ < param1.length * 8)
  187.          {
  188.             _loc2_[_loc3_ >> 5] |= (param1.charCodeAt(_loc3_ / 8) & 255) << _loc3_ % 32;
  189.             _loc3_ += 8;
  190.          }
  191.          return _loc2_;
  192.       }
  193.       
  194.       public static function md5_vm_test() : Boolean
  195.       {
  196.          return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
  197.       }
  198.       
  199.       public static function b64_md5(param1:String) : String
  200.       {
  201.          return rstr2b64(rstr_md5(str2rstr_utf8(param1)));
  202.       }
  203.       
  204.       public static function any_hmac_md5(param1:String, param2:String, param3:String) : String
  205.       {
  206.          return rstr2any(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)),param3);
  207.       }
  208.       
  209.       public static function hex_md5(param1:String) : String
  210.       {
  211.          return rstr2hex(rstr_md5(str2rstr_utf8(param1)));
  212.       }
  213.       
  214.       public static function bit_rol(param1:Number, param2:Number) : Number
  215.       {
  216.          return param1 << param2 | param1 >>> 32 - param2;
  217.       }
  218.       
  219.       public static function encrypt(param1:String) : String
  220.       {
  221.          return hex_md5(param1);
  222.       }
  223.       
  224.       public static function md5_hh(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  225.       {
  226.          return md5_cmn(param2 ^ param3 ^ param4,param1,param2,param5,param6,param7);
  227.       }
  228.       
  229.       public static function rstr2hex(param1:String) : String
  230.       {
  231.          var _loc2_:String = null;
  232.          var _loc3_:String = null;
  233.          var _loc4_:Number = NaN;
  234.          var _loc5_:Number = NaN;
  235.          _loc2_ = !!hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  236.          _loc3_ = "";
  237.          _loc5_ = 0;
  238.          while(_loc5_ < param1.length)
  239.          {
  240.             _loc4_ = param1.charCodeAt(_loc5_);
  241.             _loc3_ += _loc2_.charAt(_loc4_ >>> 4 & 15) + _loc2_.charAt(_loc4_ & 15);
  242.             _loc5_++;
  243.          }
  244.          return _loc3_;
  245.       }
  246.       
  247.       public static function any_md5(param1:String, param2:String) : String
  248.       {
  249.          return rstr2any(rstr_md5(str2rstr_utf8(param1)),param2);
  250.       }
  251.       
  252.       public static function b64_hmac_md5(param1:String, param2:String) : String
  253.       {
  254.          return rstr2b64(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)));
  255.       }
  256.       
  257.       public static function rstr2b64(param1:String) : String
  258.       {
  259.          var _loc2_:String = null;
  260.          var _loc3_:String = null;
  261.          var _loc4_:Number = NaN;
  262.          var _loc5_:Number = NaN;
  263.          var _loc6_:Number = NaN;
  264.          var _loc7_:Number = NaN;
  265.          _loc2_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  266.          _loc3_ = "";
  267.          _loc4_ = param1.length;
  268.          _loc5_ = 0;
  269.          while(_loc5_ < _loc4_)
  270.          {
  271.             _loc6_ = param1.charCodeAt(_loc5_) << 16 | (_loc5_ + 1 < _loc4_ ? param1.charCodeAt(_loc5_ + 1) << 8 : 0) | (_loc5_ + 2 < _loc4_ ? int(param1.charCodeAt(_loc5_ + 2)) : 0);
  272.             _loc7_ = 0;
  273.             while(_loc7_ < 4)
  274.             {
  275.                if(_loc5_ * 8 + _loc7_ * 6 > param1.length * 8)
  276.                {
  277.                   _loc3_ += b64pad;
  278.                }
  279.                else
  280.                {
  281.                   _loc3_ += _loc2_.charAt(_loc6_ >>> 6 * (3 - _loc7_) & 63);
  282.                }
  283.                _loc7_++;
  284.             }
  285.             _loc5_ += 3;
  286.          }
  287.          return _loc3_;
  288.       }
  289.       
  290.       public static function safe_add(param1:Number, param2:Number) : Number
  291.       {
  292.          var _loc3_:Number = NaN;
  293.          var _loc4_:Number = NaN;
  294.          _loc3_ = (param1 & 65535) + (param2 & 65535);
  295.          return (_loc4_ = (param1 >> 16) + (param2 >> 16) + (_loc3_ >> 16)) << 16 | _loc3_ & 65535;
  296.       }
  297.       
  298.       public static function str2rstr_utf8(param1:String) : String
  299.       {
  300.          var _loc2_:String = null;
  301.          var _loc3_:Number = NaN;
  302.          var _loc4_:Number = NaN;
  303.          var _loc5_:Number = NaN;
  304.          _loc2_ = "";
  305.          _loc3_ = -1;
  306.          while(++_loc3_ < param1.length)
  307.          {
  308.             _loc4_ = param1.charCodeAt(_loc3_);
  309.             _loc5_ = _loc3_ + 1 < param1.length ? param1.charCodeAt(_loc3_ + 1) : 0;
  310.             if(55296 <= _loc4_ && _loc4_ <= 56319 && 56320 <= _loc5_ && _loc5_ <= 57343)
  311.             {
  312.                _loc4_ = 65536 + ((_loc4_ & 1023) << 10) + (_loc5_ & 1023);
  313.                _loc3_++;
  314.             }
  315.             if(_loc4_ <= 127)
  316.             {
  317.                _loc2_ += String.fromCharCode(_loc4_);
  318.             }
  319.             else if(_loc4_ <= 2047)
  320.             {
  321.                _loc2_ += String.fromCharCode(192 | _loc4_ >>> 6 & 31,128 | _loc4_ & 63);
  322.             }
  323.             else if(_loc4_ <= 65535)
  324.             {
  325.                _loc2_ += String.fromCharCode(224 | _loc4_ >>> 12 & 15,128 | _loc4_ >>> 6 & 63,128 | _loc4_ & 63);
  326.             }
  327.             else if(_loc4_ <= 2097151)
  328.             {
  329.                _loc2_ += String.fromCharCode(240 | _loc4_ >>> 18 & 7,128 | _loc4_ >>> 12 & 63,128 | _loc4_ >>> 6 & 63,128 | _loc4_ & 63);
  330.             }
  331.          }
  332.          return _loc2_;
  333.       }
  334.       
  335.       public static function rstr_hmac_md5(param1:String, param2:String) : String
  336.       {
  337.          var _loc3_:Array = null;
  338.          var _loc4_:Array = null;
  339.          var _loc5_:Array = null;
  340.          var _loc6_:Number = NaN;
  341.          var _loc7_:Array = null;
  342.          _loc3_ = rstr2binl(param1);
  343.          if(_loc3_.length > 16)
  344.          {
  345.             _loc3_ = binl_md5(_loc3_,param1.length * 8);
  346.          }
  347.          _loc4_ = new Array(16);
  348.          _loc5_ = new Array(16);
  349.          _loc6_ = 0;
  350.          while(_loc6_ < 16)
  351.          {
  352.             _loc4_[_loc6_] = _loc3_[_loc6_] ^ 909522486;
  353.             _loc5_[_loc6_] = _loc3_[_loc6_] ^ 1549556828;
  354.             _loc6_++;
  355.          }
  356.          _loc7_ = binl_md5(_loc4_.concat(rstr2binl(param2)),512 + param2.length * 8);
  357.          return binl2rstr(binl_md5(_loc5_.concat(_loc7_),512 + 128));
  358.       }
  359.       
  360.       public static function str2rstr_utf16be(param1:String) : String
  361.       {
  362.          var _loc2_:String = null;
  363.          var _loc3_:Number = NaN;
  364.          _loc2_ = "";
  365.          _loc3_ = 0;
  366.          while(_loc3_ < param1.length)
  367.          {
  368.             _loc2_ += String.fromCharCode(param1.charCodeAt(_loc3_) >>> 8 & 255,param1.charCodeAt(_loc3_) & 255);
  369.             _loc3_++;
  370.          }
  371.          return _loc2_;
  372.       }
  373.       
  374.       public static function rstr2any(param1:String, param2:String) : String
  375.       {
  376.          var _loc3_:Number = NaN;
  377.          var _loc4_:Array = null;
  378.          var _loc5_:Number = NaN;
  379.          var _loc6_:Number = NaN;
  380.          var _loc7_:Number = NaN;
  381.          var _loc8_:Array = null;
  382.          var _loc9_:Array = null;
  383.          var _loc10_:String = null;
  384.          _loc3_ = param2.length;
  385.          _loc4_ = [];
  386.          _loc9_ = new Array(param1.length / 2);
  387.          _loc5_ = 0;
  388.          while(_loc5_ < _loc9_.length)
  389.          {
  390.             _loc9_[_loc5_] = param1.charCodeAt(_loc5_ * 2) << 8 | param1.charCodeAt(_loc5_ * 2 + 1);
  391.             _loc5_++;
  392.          }
  393.          while(_loc9_.length > 0)
  394.          {
  395.             _loc8_ = [];
  396.             _loc7_ = 0;
  397.             _loc5_ = 0;
  398.             while(_loc5_ < _loc9_.length)
  399.             {
  400.                _loc7_ = (_loc7_ << 16) + _loc9_[_loc5_];
  401.                _loc6_ = Math.floor(_loc7_ / _loc3_);
  402.                _loc7_ -= _loc6_ * _loc3_;
  403.                if(_loc8_.length > 0 || _loc6_ > 0)
  404.                {
  405.                   _loc8_[_loc8_.length] = _loc6_;
  406.                }
  407.                _loc5_++;
  408.             }
  409.             _loc4_[_loc4_.length] = _loc7_;
  410.             _loc9_ = _loc8_;
  411.          }
  412.          _loc10_ = "";
  413.          _loc5_ = _loc4_.length - 1;
  414.          while(_loc5_ >= 0)
  415.          {
  416.             _loc10_ += param2.charAt(_loc4_[_loc5_]);
  417.             _loc5_--;
  418.          }
  419.          return _loc10_;
  420.       }
  421.       
  422.       public static function rstr_md5(param1:String) : String
  423.       {
  424.          return binl2rstr(binl_md5(rstr2binl(param1),param1.length * 8));
  425.       }
  426.    }
  427. }
  428.